package ace.tool.generate.code.impl.generator.graphql.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author caspar
 * @date 2023/11/17 10:27
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GraphqlAdminControllerModel {
  /**
   * 包完全名称
   */
  private String packageFullName;

  /**
   * 实体类名称
   */
  private String entityClassName;

  /**
   * 实体类id类型
   */
  private String entityIdType;

  /**
   * 实体类完全名称
   */
  private String entityClassFullName;

  /**
   * graphql映射扩展
   */
  private String schemaExtendMapping;

  /**
   * graphql映射扩展后续
   */
  @Builder.Default private String schemaExtendMappingSuffix = "Admin";

  /**
   * controller 名称
   */
  private String controllerClassName;

  /**
   * controller 名称后续
   */
  @Builder.Default private String controllerClassNameSuffix = "AdminGraphql";

  /**
   * security identity 后缀
   */
  @Builder.Default private String securityIdentitySuffix = "_admin";

  /**
   * controller 名称小写与下划线名称
   */
  private String entityClassNameLowercaseUnderline;
}
